package zouhaotian.rbac.domain.vo;

import zouhaotian.rbac.util.DateTimeUtils;

import java.time.LocalDateTime;

/**
 * 视图对象类型
 *
 * @auther 邹昊天
 * @since 2025/6/20 17:37
 */
public class Uservo extends Basevo {


    /**
     *  用户名
     */
    public String username;

    /**
     *  真实姓名
     */
    public String name;

    /**
     *  电话
     */
    public String mobile;

    /**
     *  邮箱
     */
    public String email;

    /**
     *  所属的部门ID
     */
    public Integer deptId;

    /**
     *  所属部门名称
     */
    public String deptName;

    /**
     *  具有的角色ID
     */
    public Integer roleId;

    /**
     *  具有的角色名称
     */
    public String roleName;

    /**
     *  状态：启用/停用
     */
    public boolean enableed = true;

    public Uservo() {
    }

    public Uservo(Integer id, LocalDateTime createAt, LocalDateTime updateAt,
                  String username, String name, String mobile, String email, Integer deptId, String deptName, Integer roleId, String roleName, boolean enableed) {
        super(id, createAt, updateAt);
        this.username = username;
        this.name = name;
        this.mobile = mobile;
        this.email = email;
        this.deptId = deptId;
        this.deptName = deptName;
        this.roleId = roleId;
        this.roleName = roleName;
        this.enableed = enableed;
    }

    @Override
    public String toString() {
        return String.format("ID:%d, 用户名:%s, 姓名: %s， 手机: %s， 邮箱: %s， 部门名称: %s" +
                        " 角色名称: %s， 状态: %s, 更新时间: %s",  id,  username,  name,  mobile,
                 email,  deptName,  roleName,  enableed ? "启用" : "停用", DateTimeUtils.format(updateAt));
    }
}
